Improvements in computer related technologies have spawned a wide variety of computer-containing devices that access, store, and display information to their users. Such devices include, for example, laptops and other personal computers (including pen-based computing systems and hand-held computing systems); personal digital assistants; pocket personal computers; mobile and cellular telephones, pagers, and other communication devices; watches; appliances; and many other devices or systems that include monitors or other display devices that present printed and/or graphical information to users. In recent years, such devices have become smaller, lighter, faster, more powerful, and more reliable than ever.
While often taken for granted by the device users, printed or graphical information does not magically appear on display devices, and it does not magically render from printers or other devices associated with computer systems. Rather, the content and appearance of printed and graphical information are carefully controlled by the computer system, display device, and/or printer to assure that it renders in a proper and aesthetically pleasing manner. Displayed and printed information must appear in typefaces and font designs that are easy to read irrespective of the desired text size and/or the resolution of the rendering system.
Fonts based on Latin scripts and other character-based fonts generally have a relatively limited number of characters (e.g., the American-English alphabet has fifty-two letters (capital and small letters), ten numerals, punctuation, and up to approximately a few hundred other commonly used characters or symbols). Accordingly, the characters or “glyphs” associated with Latin-based fonts or other character-based fonts generally may be provided as stored outline descriptions and/or stored bitmap descriptions of the various characters at different desired text sizes, for each desired font on a system. Because of the relatively small number of characters or glyphs present in many Latin-based fonts or other character-based fonts, the memory footprint of the font (that is, the amount of computer system memory required to store the font) is not excessively large, even when stored bitmap descriptions are provided for each character at each desired text size.
Various fonts for Asian scripts and/or other ideographic, pictographic, and complex scripts, on the other hand, may contain more than 60,000 independent characters or glyphs, and many currently used Asian scripts (or other ideographic-based scripts, pictographic-based scripts, and complex scripts) contain at least tens of thousands of glyphs. Providing outline descriptions for each glyph and/or providing individual bitmap descriptions for this large number of glyphs at every desired text size on a computer system requires many megabytes of data and a large amount of file storage space. This large memory footprint can be too large for the storing, retrieving, and processing constraints of many computing devices, such as small, mobile, or hand held devices or other devices that have limited data storage space, limited memory, and/or limited processing capacity. This problem is further exacerbated in devices that enable user selection and/or dynamic download of a variety of different fonts and/or text display sizes.
In an effort to reduce the overall size of ideographic-based fonts, some font designers and producers have sought to create smaller versions of the fonts. For example, smaller versions of a font may be created by removing glyphs, features, or bitmaps from the font. This approach, however, also reduces the functionality of the font.
In another effort to reduce the overall size of ideographic-based fonts, some font designers and producers have used an approach called “glyph compositing.” Instead of storing full-form outline and/or bitmap descriptions of entire glyphs for every character, one static “generic” copy of each commonly occurring glyph part or glyph fragment is stored (along with a lesser number of full-form entire glyph descriptions). In this way, the glyph parts and fragments can be shared and reused for the reconstruction of many glyphs. Although this approach reduces the overall size of the font, the font size often is still too large for devices with small amounts of available memory. Further, in this approach, many details of the natural glyph shapes are lost, and the overall quality of the reconstructed or reassembled glyph images often is reduced.
Accordingly, there is a need in the art for systems and methods that will allow fonts, including fonts with large character sets and glyph sets, to remain intact and that will enable devices to support full character complements and families of fonts and produce high quality rendered output at a variety of device resolutions and text display sizes, without overburdening the memory and processing capabilities of the computing system or device. It further would be advantageous to provide a font representation that produces high quality output on small mobile devices and/or other devices having limited or reduced memory and/or processing capabilities.